package Coleccion;

//http://147.188.192.43/documentation/tutorials/docsystem/build/tutorials/junit/junit.html
//http://www.programacion.com/articulo/primeros_pasos_con_junit_265#4_paso3

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;


import java.util.LinkedList;

import pfc.*;
import pfc.mensaje.*;


public class MensajeTester extends TestCase
{

	public MensajeTester(String nombreTest)
	{
		super(nombreTest);
	}

	public void testFormatoTexto_1()
	{
		String nick="Gabriel";
		String id="123456789";
		String mensaje="Mensaje de prueba";
		Texto txt= new Texto(mensaje,"cliente",new Conversacion(),new Usuario(nick,id));
		String txt_OK=txt.getTimeStamp_Hora()+"-- "+nick+": "+mensaje;
		assertEquals(txt_OK,txt.getTextoFormato());
	}

	public void testFormatoTexto_2()
	{
		String nick="";
		String id="123456789";
		String mensaje="Mensaje de prueba";
		Texto txt= new Texto(mensaje,"cliente",new Conversacion(),new Usuario(nick,id));
		String txt_OK=txt.getTimeStamp_Hora()+"-- "+nick+": "+mensaje;
		assertEquals(txt_OK,txt.getTextoFormato());
	}

	public void testFormatoTexto_3()
	{
		String nick="Gabriel";
		String id="123456789";
		String mensaje="";
		Texto txt= new Texto(mensaje,"cliente",new Conversacion(),new Usuario(nick,id));
		String txt_OK=txt.getTimeStamp_Hora()+"-- "+nick+": "+mensaje;
		assertEquals(txt_OK,txt.getTextoFormato());
	}

/*
	public void testAnyadeObjeto1()
	{
		LinkedList<Object> lista1= new LinkedList<Object>();
		LinkedList<Object> lista2= new LinkedList<Object>();

		lista1.add("Gabriel");
		lista1.add("Gemma");
		lista1.add("Gregorio");

		lista2.add("Gemma");
		lista2.add("Gregorio");
		lista2.add("Gabriel");


		Lista lista_OK= new Lista(lista1);
		Lista lista_prueba = new Lista(lista2);
		
		lista_prueba.ordena();

		assertEquals(lista_prueba.getLista(),lista_OK.getLista());

	}

	public void testAnyadeObjeto2()
	{
		LinkedList<Object> lista1= new LinkedList<Object>();
		LinkedList<Object> lista2= new LinkedList<Object>();

		lista1.add(new Integer(1));
		lista1.add(new Integer(50));
		lista1.add(new Integer(500));

		lista2.add(new Integer(50));
		lista2.add(new Integer(1));
		lista2.add(new Integer(500));


		Lista lista_OK= new Lista(lista1);
		Lista lista_prueba = new Lista(lista2);
		
		lista_prueba.ordena();

		assertEquals(lista_prueba.getLista(),lista_OK.getLista());

	}


	public void testencuentraObjeto()
	{
			LinkedList<Object> lista1= new LinkedList<Object>();

			Integer i1= new Integer(1);
			Integer i2= new Integer(56);
			lista1.add(i1);
			lista1.add(new Integer(50));
			lista1.add(new Integer(500));

			Lista lista= new Lista(lista1);
			

		        try {
	    			lista.busca(i2);
		        	    fail("Should raise a 'No encontrado! ' Exception");

        		} catch(Exception e) {

				if (e.getMessage().equals("No encontrado!"))
				{
		        		    // successful test
				}
				else
				{
		        	    fail("Should raise a 'No encontrado! ' Exception");

				}

        		}
    	}

	public void testAnyadeVariosTipos()
	{
		LinkedList<Object> lista1= new LinkedList<Object>();
		lista1.add("String");
		lista1.add(new Integer(1));
		Lista lista= new Lista(lista1);
	}

*/
	/**
     	* Assembles and returns a test suite for
	     * all the test methods of this test case.
	     * @return A non-null test suite.
	     */
	    public static Test suite() {

	        //
	        // Reflection is used here to add all
	        // the testXXX() methods to the suite.
	        //
		TestSuite suite = new TestSuite(MensajeTester.class);
		//	TestSuite suite = new TestSuite();
		//	suite.addTest(new ListaTester("testAnyadeObjeto2"));
			
	        //
	        // Alternatively, but prone to error when adding more
	        // test case methods...
	        //
	        // TestSuite suite = new TestSuite();
	        // suite.addTest(new ShoppingCartTest("testEmpty"));
	        // suite.addTest(new ShoppingCartTest("testProductAdd"));
	        // suite.addTest(new ShoppingCartTest("testProductRemove"));
	        // suite.addTest(new ShoppingCartTest("testProductNotFound"));
	        //
	
	        return suite;
	    }




}


